Health monitoring system

ABSTRACT

A health monitoring system that monitors the health of a patient includes an ingestible capsule containing a medication to be consumed by a subject. A signal generator located within the capsule outputs an electrical signal having a predetermined characteristic indicative of said medication, said capsule and said medication being liberated by dissolution of the capsule in the stomach acid of a subject. A signal detector, preferably having an input in electrical contact with a portion of the subject&#39;s skin, is used to detects the electrical signal. This allows the ingestion of the medication to be tracked.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a division of U.S. patent application No.09/447,986, filed Nov. 23, 1999 now U.S. Pat. No. 6,282,441, which is acontinuation of U.S. patent application No. 09/001,032 (now U.S. Pat.No. 6,095,985) filed Dec. 30, 1997, which is a continuation of U.S.patent application No. 08/394,157 (now U.S. Pat. No. 5,778,882), filedFeb. 24, 1995.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of medicine and health and,more specifically, to health tracking including assessing trends inhealth and the diagnosing and monitoring of medical conditions.

2. Description of the Related Art

In the medical profession today, the advent of high technology hasprovided a myriad of impressive diagnostic tools. However the focus ofthis medical technology has been on diagnosis of acute conditions,rather than advanced warnings and preventive advice. Routine “checkups”are the recognized method of monitoring a person's health. Suchexaminations provide a physician with information relating to thepatient's condition. However, unless a patient's checkup is fortuitouslyscheduled for a time at which symptoms of an ensuing illness are justdeveloping, the checkup may not be effective in helping to detect theonset of an adverse medical condition.

Portable health monitors have been developed in the past which monitorbody parameters specific to a particular medical condition. In somecases these monitors record specific parameter data, while in othersthey provide an output to the patient which is indicative of thephysical parameters they sense. Some monitors simply provide an alarmwhen the parameters reach a pre-set level of particular concern. Others,specifically some portable heart rate monitors, provide a digitaldisplay of heart rate to the patient. Still others record heart rateover time. Patients use such heart rate monitors to warn them of highheart rates. Athletes use them to ensure that their physical trainingincludes periods of elevated heart rate thought to be sufficient topromote conditioning. Similar monitors also exist for measuring otherparameters, usually individually or without the capability to store theinformation for extended periods of time.

SUMMARY OF THE INVENTION

Absent from the prior art is a portable monitor having the capability toconstruct, manage, and store a detailed, multi-parametric, record of anindividual's physiological and emotional well-being that can be used fortracking and assessing general health over days, months, and years. Thepresent invention comprises a health monitoring system including adatabase and data management system linked with a plurality of healthtrackers, each of which regularly collects various forms of data aboutor from a patient/subject. The preferred embodiment of the inventionconsists of three basic components: 1) a data management systemincluding the database; 2) a plurality of physiological and subjectivedata collection devices that collect a set of timestamped serial streamsfrom a subject; and 3) a communications system by which the data isperiodically uploaded from the monitors to the database.

In the preferred embodiment the health trackers each have a portablemultiparametric monitor that automatically and noninvasively monitorsphysiological parameters. The health trackers each preferably alsoinclude a data logger that permits and/or prompts the patient to entersubjective reports of psychological and physiological data, as well asactivities and environmental conditions. Thus, a composite stream(preferably serial) of objective physiological and subjective data iscreated which is indicative of the overall health history of apatient/subject.

In order to be effective as a prospective diagnostic tool, theinformation collected is not anticipatory of any specific medicalcondition, but is instead broadly related to the general health of thepatient. That is, the data is collected from numerous health indicatorsor metrics, each of which may have some relationship, or may becompletely unrelated to, any particular medical condition. The compositemultiparametric data streams in combination provide enough informationto allow the identification of a wide variety of possible trends in thetracking data which, as an ensemble, may be indicative of any of avariety of medical conditions. Although the data collected is notspecifically related to tracking any particular condition, the entiresystem is designed so that patterns which are characteristic of healthysubjects, as well as ill ones, can be derived from the collected data.

The preferred embodiment of the data collection portion of the inventioncollects a combination of sensed physiological data and subjective dataentered by the patient. For subjective data collection, thepatient-supplied data is solicited by the data logger using dataprompts, which may be in the form of health-related questions. Thesequestions may include interactive input formats such as body diagrams orthe like. As the data is collected, it is time stamped, compressed(where appropriate) and uploaded to the database, labeled for thepatient in question. The resulting health history is a combined formatof objective physical parameters and subjective patient data which istime-indexed for subsequent retrieval and analysis. From these storeddatastreams, trends in the data may be identified.

Each health tracker includes a means for periodically uploading thecollected data to the database. In the preferred embodiment, the healthtrackers communicate with the database via a public information network.The monitors are connected to the network by a communications devicesuch as a modem. Once stored in the database, the data may be lateraccessed by an authorized physician or by the patient. Because the datais logged by patient and time-index, the data can be recovered for aparticular patient and a particular time period with relative ease. Thedata stored by the present invention in the database is of particularvalue for identifying trends in healthy persons due to the fact that itis collected regularly, irrespective of the patient's medical condition.The invention thus provides a powerful tool previously unavailable tophysicians for the early detection of adverse medical conditions.

The multiparametric physiological monitor is a portable unit forcontinuous monitoring of certain physical parameters of the patient. Inthe preferred embodiment, the monitor sensors include EKG electrodes, achest expansion sensor, an accelerometer, a chest microphone, abarometric pressure sensor, an underarm temperature sensor, a pectoralistemperature sensor and an ambient temperature sensor. Each of thesensors provides an output signal to an analog-to-digital converter(ADC) which is controlled by a real-time (RT) controller. The RTcontroller is preferably a digital microcontroller which runs a programthat collects data from the sensors and transmits the collected data toa second controller, referred to as the “memory server” (MS) controller,to be stored.

The MS controller, like the RT controller, is preferably a digitalmicrocontroller. The MS controller runs a program that compresses thedata received from the RT controller, where appropriate, and stores itin a random access memory (RAM). In addition, the MS controller isresponsible for communications with external entities such as a databaseserver.

In the preferred embodiment, electrocardiogram (EKG) data is reduced andcompressed, and ventilation (chest expansion sensor) data is reduced.The ventilation data is reduced by storing a series of timeinterval/amplitude pairs that comprise a straight-line approximation ofthe chest expansion signal. The straight-line approximation uses thesignificant events in this signal, such as the inflection points in thebreathing is cycle, and the start and stop of breathing plateau periods(i.e. extended times of stable chest circumference), as well as sharperinflections associated with sneezing, coughing or retching.

EKG data, sampled most frequently, is reduced by storing only timinginformation for each heartbeat (QRS complex) and, once per minute,storing the median values of various components of a straight-lineapproximation of the QRS complex. The heartbeat interval information iscompressed by storing the differences in interval duration rather thanthe interval itself where possible, and storing the interval differencesin formats which take advantage of their compressed size.

The RAM is divided into three regions: 1) the scratchpad; 2) thewarehouse (long-term storage of all but 8-bit EKG data); and 3) the8-bit EKG data area. As data is received, it is placed in thescratchpad. As time permits, data is read from the scratchpad,processed, and stored in the warehouse or the EKG zone, depending on thedata type and size. The MS controller stores data received from the RTcontroller in the scratchpad in the packetized format in which it wasreceived. When not busy with other tasks, the MS controller processesdata temporarily stored in the scratchpad and places it invariable-length fields in the warehouse or fixed-length fields in theEKG zone. The data in the warehouse is tagged using a coding methodwhich identifies the data type with a particular sequence of leadingbits. This allows proper reassembling of data as it is read out ofmemory.

In the preferred embodiment, the subjective data logger runs auser-friendly data collection program which prompts the patient toreport subjective data or simply serves to structure a voluntarysubmission of a report. This data is timestamped and stored in a localmemory unit of the data logger for later uploading to the database. Themonitor and the data logger may be linked together to connect to thedatabase as a single unit via a public data network or othercommunication medium. Alternatively, either of the monitor and the datalogger may individually connect to the database.

One particular feature of the present invention involves the use of acapsule which contains a patient's medication, along with a miniaturepulse generator and transmitter. When the capsule is ingested anddissolves in the patient's stomach acid, the medication is liberated andthe transmitter is activated. The transmitter transmits a pulsed signalwhich is uniquely identified with the medication in the capsule. Thesignal is detected by the EKG electrodes of the monitor on the surfaceof the patient's skin, and is decoded by the monitor firmware toautomatically identify which drugs are ingested by the patient and whenthey are taken.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic overview of a health monitoring system inaccordance with the present invention.

FIG. 2 is a front view of a portable multiparametric monitor which ispart of a preferred embodiment of the present invention.

FIG. 2A is a top view of a patient wearing the multiparametric monitorwhich shows the desired locations of EKG electrodes of the monitor.

FIG. 3 is a block diagram of a portable multiparametric monitor of thepresent invention.

FIG. 4 is a schematic depiction of the hardware of a portablemultiparametric monitor of the present invention.

FIG. 5. is a memory map of the RAM memory of a portable multiparametricmonitor of the present invention.

FIG. 6 is a table of the service groups for data collected by a portablemultiparametric monitor of the present invention.

FIG. 7 is a representation of how data is stored in RAM.

FIG. 8 is a graphical depiction of a EKG waveform demonstrating the EKGsampling points of the multiparametric monitor of the present invention.

FIG. 9 is a flow chart depicting a software routine of a real timecontroller of the multiparametric monitor.

FIG. 10 is a flow chart depicting an interrupt routine of the real timecontroller.

FIGS. 11A-11D together make up a flow chart depicting an EKG signalprocessing routine of the real-time controller.

FIGS. 12A and 12B depict a flow chart of a ventilation signal processingroutine of the real time controller.

FIG. 13 is a flow chart depicting a plateau detection function usedduring the ventilation signal processing routine of the real timecontroller.

FIG. 14 is a flow chart depicting a software routine of a memory servercontroller of the multiparametric monitor.

FIG. 15 is a front view of a subjective data logger of the presentinvention.

FIG. 16A depicts a “pain location” screen display of the subjective datalogger on which a front view of a human body is shown.

FIG. 16B depicts a “pain location” screen display of the subjective datalogger on which a rear view of a human body is shown.

FIG. 16 depicts a “pain location” screen display of the subjective datalogger on which a magnified view of a particular portion of a human bodyis shown.

FIG. 17 depicts a “pain history” screen display of the subjective datalogger.

FIG. 18 depicts a “mood” screen display of the subjective data logger.

FIG. 19 depicts a “medication history” screen display of the subjectivedata logger.

FIG. 19A depicts a “side effects” screen display of the subjective datalogger.

FIG. 20A depicts a message screen upon which a user may enter a messageto be received by a party monitoring the database.

FIG. 20B depicts a message screen upon which a user receives messagesand interactive questions from a party monitoring the database.

FIG. 21 is an exploded view of an “electronic pill” used with analternative embodiment of the multiparametric monitor of the presentinvention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

Shown in FIG. 1 is a health tracking system 100 which has a centraldatabase 102 with a data link connectable to each of a plurality ofhealth trackers 104. In the preferred embodiment, each of the healthtrackers 104 includes a multiparametic physiological monitor 108 and asubjective data logger 106. In the preferred embodiment the monitor 108connects directly to a modem 110 (when used without a data logger 106),or can be connected to a serial data port on the subjective data loggerwhich, in turn, connects to a modem 110. In the preferred embodiment anexternal modem is used primarily because of lower cost, however thoseskilled in the art will recognize that it would also be possible toinclude a single chip modem in the monitor 108 or to plug a PCMCIA modeminto the data logger 106. The external modem of the preferred embodimentalso includes a chargepad for recharging the batteries of the portablemonitor 108 and data logger 106 units.

The monitor 108 and the data logger 106 collect data from the patientwhich is time stamped and stored locally for later uploading to thecentral database 102. Those skilled in the art will recognize that the“central” database may actually be a plurality of databases. However,for the purposes of this description, the database will be described asa single unit.

Preferably, the data link from each of the health trackers 108 and eachof the data loggers 106 to the database is established using anassociated modem 110, and some combination of a telephone network and adata network. In the present embodiment, the modem 110 directly connectsvia telephone to one of the computers that support the database 102. Inthe alternative, the modem may connect to a local network accesscomputer and transmit data to the database via the network connection.Those skilled in the art will recognize that there is a variety of meansto transfer data from site to site, and that different means may bechosen at anytime based on cost and convenience.

The monitor 108 collects objective data on the patient's physicalcondition via a plurality of automatically-controlled physiologicalsensors. The subjective data logger collects subjective information fromthe patient by providing the patient with an input device having dataprompts such as questions regarding the patient's condition. Within thecontext of this description, the term “objective” data will refer tothat data which is obtained by sensing the patient's physiologicalparameters. Correspondingly, the term “subjective” data will refer tothat data which is input by the patient to the data logger 106,regardless of whether that data pertains to the patient or the patient'senvironment, and whether or not the information is objective or factual,such as medication dosage or consumption of a particular food.

Referring to FIG. 1, a medical records database 114 contains informationregarding patient medical histories. Also shown graphically in FIG. 1 isa depiction of a hospital 116 and a physician's office 118. The hospital116 and physician's office also have data connections with database 102to allow the transfer of data to and from the database. In addition, thedatabase 102 has a direct connection to the medical records database toallow the transfer of information directly between the two locations.Although only one hospital building and one physician's office are shownin the figure, those skilled in the art will recognize that there canbe, and are likely to be, a large number of hospitals and physiciansoffices with communications links to the medical records database 114.In addition, a number of personnel not directly related to patient caremay be located at these and other sites, similarly connected over apublic or private network, who will be performing data management andanalysis services.

Multiparametric Monitor

Shown in FIG. 2 is multiparametric monitor 108. The monitor 108comprises a body strap which, in the preferred embodiment, is a cheststrap 124 upon which are distributed various sensors and supportingelectronics. (It will be recognized by those skilled in the art that amultiparametric monitoring device may also be mounted by a strap about apart of the body other than the chest). As shown in the top view of FIG.2A, the chest strap 124 fits around the torso of a patient 120. In thepreferred embodiment, all of the electronics and sensors are configuredin the flexible strap itself such that the monitor is completelyself-contained. That is, the chest strap 124 includes a number offlexible conductors which are embedded in the strap. The variouscomponents are mounted in the strap, and are interconnected via theembedded conductors. In the preferred embodiment, the belt, sensors andaccompanying electronics have a thin profile, and the strap is aconsistent 0.9 inches wide along its length. Most of the monitor is lessthan 0.20 inches thick, except for an area containing the batteries 129and an area containing the chest expansion sensor and accelerometer,each of which is approximately 0.3 inches thick.

A variety of parametric sensors are supported by the monitor, each beinglocated on the strap 124 as most appropriate for the parameter (orparameters) which it detects. Each of the sensors provides an electricalinput to analog circuitry which filters and amplifies the sensorsignals, as known in the art of signal processing, and outputs them toan analog-to-digital converter, which is part of monitor hardware 144.The hardware 144 of the monitor 108 receives data from the sensors in amanner which is discussed in detail with reference to FIG. 4. Theidentification of the following sensors in FIGS. 2 and 2A is intended todescribe a preferred embodiment for the sensors and their locationsrelative to the patient's body, and is not intended to limit the use ofother sensors or other positioning of sensors with the presentinvention.

The sensors (shown in block diagram form in FIG. 3) are as follows:pectoralis temperature sensor 128, which senses the temperature of thesurface of the patient's chest; barometric pressure sensor 130, whichsenses the ambient barometric pressure of the patient's environment;chest expansion (ventilation) sensor 132, which detects the tension onthe chest strap 124 as an indication of the expansion and contraction ofthe patient's chest; accelerometer 134, which detects movement andinclination of the patient's body; ambient temperature sensor 136, whichsenses the ambient temperature of the patient's environment; microphone138, which detects sounds from within the patient's torso; and underarmtemperature sensor 142, which senses the temperature of the side of thepatient's torso underneath the arm. Also on the chest strap 124 are EKGelectrodes 140, which detect electrical signals caused by action of theheart muscle.

In the preferred embodiment, two EKG electrodes 140 and two ground, orreference, electrodes 141 are placed in contact with the skin of thepatient's chest, and detect electrical signals generated by the pumpingaction of the patient's heart muscle. The EKG (electrocardiogram) is anindication of the patient's heart activity, as is well known in thefield of medicine. The EKG signal acquisition circuit is of known designand produces an EKG signal which is sampled periodically under controlof the monitor hardware.

Referring to FIG. 2, the electrodes 140, 141 are each a made of aconductive rubber and have a metal pin projecting from a back side. Theback side is also provided with an adhesive coating which allows the pinto be plugged into the outer surface of the strap 124 and retained alongthe surface by the adhesive. For each of the electrodes 140, 141, aplurality of conductive, locking receptacles 131, 133, 135, 137 areequally spaced along the surface of the strap 124. Each set ofreceptacles 131, 133, 135 137 is a common electrical point establishedby a conductor embedded in the strap 124 (e.g. all receptacles in thegroup marked 135 are electrically connected, but are isolated from thereceptacles 131, 133 and 137).

Each of the receptacle groups 131, 133, 135, 137 provides one input tothe hardware 144. By plugging a pin 140, 141 into a particularreceptacle of a group, the location of that pin is established relativeto pins which are similarly plugged into receptacles of other groups.This relative location of EKG electrode and ground pins 140, 141 allowsthe chest strap 124 to be adapted to the different sized torsos ofdifferent patients. The correct location of the pins can be determinedby considering the desired locations of the electrodes and ground pointsrelative to the patient's body.

FIG. 2A shows the preferred locations of the electrode and ground pins140, 141 relative to the body of a patient 120. The reference numeralspertaining to each of the receptacle groups are used to indicate theselocations. As shown, in the preferred embodiment, electrode pins 140 arelocated in receptacle groups 131 and 135, while the ground pins 141 arelocated in receptacle groups 133 and 137.

To determine the receptacles to which each pin 140, 141 should beconnected in its respective group, the chest strap 124 is first alignedrelative to the patient's body by locating sternum center line 143directly in front of the patient's sternum. The strap is then wrappedaround the patient's torso, and the receptacles on the strap which areclosest to the locations 131, 133, 135 and 137 shown in FIG. 2A areselected as the proper insertion points for the pins 140, 141. Althoughdifferent patients have different sized torsos, the varied receptaclelocations for each group 131, 133, 135 137 nonetheless is allow for adistribution of EKG contacts as shown in FIG. 2A for each patient. Thosesensors of the monitor other than the EKG sensor are discussed brieflybelow.

The chest expansion sensor 132 is a tension sensing device which sensesthe change in tension on the chest strap 124 of the monitor 108. In thepreferred embodiment, the chest expansion sensor 132 includes a strainor stress gauge, which has an output that changes with the tension onthe chest strap 124. As shown in FIG. 2, the chest expansion sensor islocated right at the sternum center line 143 of the chest strap 124.

The accelerometer 134 uses a well-known piezo-resistive bridge sensor,and is located within the chest strap 124. The output of the bridgesensor is amplified and filtered to separate the AC and the DCcomponents. Each of the AC and DC signals is then individually sampledby the monitor hardware.

Microphone 138 is located on the side of the monitor 108 facing thepatient's chest so that it remains in contact with the chest cavity. Theaudible signals detected by the microphone are amplified in apre-amplification stage and then divided along separate circuit pathswhich develop the “breath sounds” signal and the “voice sounds” signal,respectively. The breath signal path incorporates a bandpass filterpassing frequencies in the range 1.5 KHz-5 Khz. Similarly, a voicesignal bandpass filter ranges from 600 Hz-2 KHz. In the preferredembodiment, simple RC filters are used, as is known in the art ofcircuit design. Those skilled in the art will recognize that otherdesigns for said filters can be implemented without significantlyaffecting the form and function of the device. Separate output paths areprovided for the different signals to allow them to be sampled ondifferent channels of the analog-to-digital converter 146.

In addition to providing the breath signal output and the voice signaloutput, additional circuitry provides for analog integration of each ofthese signals. The integrator circuits used with each branch arestandard analog integrators, well known in the art, which are resetperiodically so as to provide an appropriate integration time. For eachof the breath integral and the voice integral, the reset signal forrestarting the integration cycle is generated once each second by themonitor hardware immediately after sampling the signal in question.

The barometric pressure sensor 130 is located on the side of the cheststrap 124 away from the patient's body. The pressure sensor 130 is ofknown design and uses a piezo-resistive bridge sensor. The output ofthis sensor is amplified and sampled by the monitor analog circuitry andhardware once a minute.

Each of the underarm, the pectoralis and the ambient temperature sensorsuse an amplifier having a thermistor-controlled feedback loop togenerate a temperature output signal. The thermistor for each ispackaged in a waterproof protective sleeve and is located adjacent tothe area in which it senses temperature. The underarm thermistor islocated adjacent to the patient's torso with its protective package incontact with the patient's skin. Similarly, the pectoralis thermistor islocated on the inside of the chest strap 124 such that its protectivepackage contacts the patient's skin in the center of the chest, wherethe housing 122 is located. The ambient thermistor is located on theside of the chest strap 124 away from the patient's body. It gives anindication of the patient's thermal environment, and allows acomparative analysis with the other temperature sensor outputs.

The monitor hardware 144 is shown in block diagram form in FIG. 4. Thehardware 144 includes a real-time (RT) controller 148 which coordinatesthe sampling of the sensor outputs, organizes the data into anappropriate format and transmits it to the memory server (MS) controller150 for later uploading to database 102 (FIG. 1). The analog output ofeach of the monitor sensors from the analog circuitry of the device(shown as inputs 156 in FIG. 4) is connected to an analog-to-digitalconverter (ADC) 146. There is also an set of integrator reset lines 157which the RT controller uses to reset the integration circuits ofvarious monitor circuitry. In the preferred embodiment, the ADC 146 is atwelve-bit, serial digital interface converter such as the TLC2543.Those skilled in the art will recognize that use of a different type ofconverter or one with different resolution will not significantly affectthe form or function of the invention.

RT controller 148 is an interrupt-driven microcontroller, such as aMicrochip PIC16C74, which runs a program (firmware) that will bediscussed in more detail hereinafter. The RT controller 148 isresponsible for the data sampling and pre-processing. The MS controller150 (also an interrupt-driven microcontroller) is responsible forreceiving the data packets from the RT controller 148, compressing thedata, where appropriate, and storing it in the appropriate part ofrandom access memory (RAM) 152. The MS controller 150 is alsoresponsible for controlling the flow of data between RAM 152 andexternal entities such as the database 102 (FIG. 1), or subjective datalogger 106. While the preferred embodiment uses two Microchip PIC16C74microcontrollers, those skilled in the art will recognize that it wouldbe possible to use different controllers or processors from the same orother vendors, or even to perform both functional groups (the real-timeblock and the memory server block) in a single microcontroller withoutsignificantly affecting the form and function of the invention.

Each of the controllers 148, 150 includes a number of internal elementswhich, in the preferred embodiment, are integral components of theintegrated circuits which comprise the controllers 148, 150. The RTcontroller 148 has a central processing unit (CPU) 141 which runs afirmware program stored in a “program store” which, in the presentembodiment, is erasable, programmable read-only memory (EPROM) 143. Inexecuting the stored program, the RT controller provides the necessarycontrol signals to collect data samples using the ADC 146 and totransmit the collected data to the MS controller 150.

The RT controller 148 includes a synchronous serial port (SSP) 145 viawhich CPU 141 provides commands to the “data in” (DI) port of ADC 146,and receives data from the “data out” (DO) port of ADC 146, controllingthe data transfer using a clock signal “IOCLK”. The communicationbetween the RT controller 148 and the ADC 146 is bi-directional andsynchronous, that is, data is transmitted both directions simultaneouslywith each pulse of signal “IOCLK”. Those skilled in the art willrecognize that the communication arrangement is specific to the ADC 146in the implementation and may be changed to accommodate another type ofADC without significantly affecting the form and function of theinvention.

To acquire data from a particular channel, the RT controller 148transmits a serial control message to ADC 146. Included with thismessage is a four-bit code indicating which of the eleven analog inputlines is to be sampled. The ADC 146 then latches the analog signal onthe specified line, and begins converting it to a 12-bit sample. Whenthe sample is complete, the ADC 146 provides an output on pin “EOC” (endof conversion) which is detected by CPU 141 at one of the digital I/Oports 147 of RT controller 148. This signal indicates to the RTcontroller 148 that data is available to be read from the ADC 146, andthat the ADC 146 is ready to perform another conversion. Under controlof the RT controller 148, the sample is then transmitted from the DOport on the ADC 146 to the “data in” (DO) pin of SSP 145 of RTcontroller 148.

Each of the controllers 148, 150 is a low-power device which has apower-down (or “sleep”) mode in which most of its power consumingcomponents are de-energized until an electrical “wakeup” signal isreceived at the appropriate input port. Such power saving strategies area key element to allowing the physiological monitor to make use ofsmall, light batteries, and thus be unobtrusive to wear, while stillbeing capable of “real time” processing as required for the invention.

Although prior art real-time, intermittent devices exist, they typicallyhave relatively long delays between the times at which they were“awakened.” This long delay is necessitated by the requirement of acrystal clock source, which gives the accuracy necessary for real-timeprocessing. The delay is a result of the fact that crystal oscillatorstypically require more than 1000 clock cycles to properly stabilize.Thus, if a crystal oscillator were turned on and off with eachintermittent cycle of the present invention, the monitor would belimited to a much lower sampling rate, and the resolution of the systemwould be significantly lower.

RC oscillators (i.e. those which make use of a resistive/capacitivenetwork) are traditionally not favored for real-time devices because oftheir inherent inaccuracy. In order to provide a high resolution system,while reaping the low power benefits of intermittent operation, thepresent invention uses multiple clocks, each directed toward a differenttask. These clocks include real-time (RT) clock 155, and RC instructionclocks of the CPUs 141, 151 which make use of external RC circuits 157,159.

While most of the elements of the RT controller 148 and the MScontroller 150 are idle during “sleep” cycles, the RT clock 155 runscontinuously, at a rate of approximately 32.5 KHz (In the preferredembodiment, the crystal is a “watch crystal” which runs at a speed of32,768 Hz, but for the remainder of the description will be discussed interms of the approximate 32.5 KHz speed). The RT clock 155 makes use ofa crystal 161 (such as quartz crystal), which ensures accurateoscillation of the clock circuit. The RT clock includes a timer whichevery thirteenth oscillation provides a “wakeup” pulse to CPU 141. Thewakeup pulse causes the CPU to come out of its idle state, and toinitiate a sampling event. Thus, the wakeup pulses are generated at afrequency of 2.5 KHz, the desired maximum sampling frequency of thesystem.

Although the periodicity of the wakeup pulses (and therefore thesampling rate of the system) is rigidly controlled by the crystal-basedoscillator of the RT clock 155, the CPU clock (which must be much fasterthan the 2.5 KHz rate of the RT clock 155) is controlled by the RC pair157. This RC clock is not a precision clock, but provides an oscillationrate of approximately 4 MHZ. This comparatively fast clock speed allowsthe CPU 141 to process all of the instructions necessary to accomplishthe desired data transfer tasks involved in signaling the ADC 146,receiving data from the ADC 146 and transmitting the data to the MScontroller 150. Indeed, this clock speed is sufficiently fast that theRT controller is able to finish the interrupt service well before thenext wakeup pulse from the RT clock 155 arrives, thus allowing it toreturn to “sleep” mode or to be in an interruptible backgroundprocessing mode. Although the RC-based clock is significantly lessaccurate than the RT clock, the data processing tasks do not require ahighly accurate clock. Because the RT clock 155 synchronizes each datasampling event by initiating the data collection sequence with a wakeuppulse, the maximum sampling rate is a stable 2.5 KHz.

The dual-clock feature of the present invention allows for full digitalevent detection of heartbeat (QRS) signals with intermittent operationof the controlling processors. Unlike earlier intermittent devices (inwhich events such as QRS complexes were detected by external, analogcircuits that, in turn, “awakened” the processor), the RT controller 148detects the QRS events digitally by using “fine-grain” intermittentoperation, in which the processor “wakes up” every 400 μs to sample andprocess the EKG signal. This differs from the “coarse grain”intermittent operation of prior systems in which the processor wakes upto process an externally detected event (typically no more often than100 times per minute). This fine grain operation is made possible byusing the RC oscillator as a clock source, which allows the processor tobegin useful operation within one or two clock cycles (0.25 to 0.5 μs)of getting a wakeup signal.

After a full data packet is ready for transfer, the RT controller 148alerts the MS controller 150 that it is ready to begin transmitting databy providing an output on one of its digital ports 147 which is receivedon one of the digital ports 149 of MS controller 150. This signalinterrupts or, in the case that it was idle, “wakes up” the MScontroller 150 and causes it to prepare for the data transfer. The CPU151 of the MS controller 150 runs a firmware program stored in the EPROMprogram store 153. When not servicing the RT controller data, the MScontroller 150 is either post-processing data previously received fromthe RT controller 148 (i.e. performing data compression or storing datato RAM 152), or is powered down in a “sleep” mode.

The sleep mode is essentially the same as the sleep mode of the RTcontroller. As part of the program of the MS controller 150, in order toconserve power in the system, the CPU 151 de-energizes most of the MScontroller 150 circuits when there are no postprocessing tasks orservicing required for RT controller data. The MS controller is“awakened” by the receipt of the wakeup pulse from RT controller 148along line 162, in the same manner that the RT controller 148 is“awakened” by the wakeup pulse from the RT clock 155.

Upon receiving the wakeup signal, the MS controller 150 either powers up(if in sleep mode), or suspends its post-processing activities in orderto provide service to the RT controller 148. Once ready to receive data,the MS controller 150 sends an acknowledgment signal to RT controller148 on protocol signal line 164. Further interaction between the RTcontroller 148 and the MS controller 150 occurs over bus 154 and isarbitrated by protocol signals 164 and 162. Those skilled in the artwill recognize that the general manner of communication between thecontrollers is well-known in the art and that changes to the particularsthereof do not significantly affect the form or function of theinvention.

The RT controller 148, in its request, indicates to the MS controller150 what type and how much data it will be transmitting. Once the RTcontroller request is acknowledged, the MS controller coordinates datatransfer from the RT controller 148 to the RAM 152. Synchronizationbetween RT controller 148 and MS controller 150 is accomplished usingprotocol signals 164 and 162. While data is synchronously transmittedover bus 154, RAM 152 is controlled directly by MS controller 150. Whenthe transfer is completed, the RT controller 148 resumes its datacollection tasks, and MS controller 150 resumes its post-processingtasks.

Prior to post-processing (i.e. when the monitor data is firsttransmitted from RT controller 148), newly-received data is placed inthe “scratchpad” of RAM 152 by the MS controller 150. As shown in thememory map of FIG. 5, in the preferred embodiment, the scratchpad 168occupies a fixed amount of separate memory which, in the preferredembodiment, is 2,304 bytes. After post-processing, the resultant datawill be stored in either the warehouse 170 or the 8-Bit EKG-sid zone172. Where any particular monitor data is stored in RAM 152 depends onthe type of data in question. As described below, different types ofdata are handled differently by the firmware of the present invention.

FIG. 6 is a table of monitor 108 service groups. Each service group isdefined by the rate at which subroutines are run and/or data samples aretaken for the monitored parameters of the group. The different samplingrates shown in the figure are selected as part of the preferredembodiment, and are based on numerous factors including, but not limitedto: 1) the necessary minimum sampling rate to properly characterize thesensor signal in question; 2) the desired frequency of samples forcreating a data history for the sensor signal in question which is ofthe most value in detecting trends and diagnosing medical conditions; 3)the processing speed limitations of the system hardware; and 4) thepractical limitations on the memory storage capabilities of RAM 152 andof the database 102. It will be apparent to those skilled in the artthat different service groups and different sampling rates may be usedas an alternative embodiment of the present invention.

Referring to FIG. 6 , the most infrequently collected data is in GroupE, referred to as “minute” data. Included in this group are sensorsignals which change relatively slowly with time. Specifically, thisgroup includes: 1) the barometer signal; 2) the pectoralis temperaturesensor signal; 3) the underarm temperature sensor signal; and 4) theambient temperature sensor signal. Each of the se signals is sampled bythe RT controller 148 once every sixty seconds. In addition to thesampled signals, the service group table of FIG. 6 also shows otherfunctions performed once a minute as part of Service Group E. Thesefunctions include transferring a stored “minute (data) packet” to RAM152 and resetting minute data packet “accumulators,” which are selectedmemory locations maintained by RT controller 148.

Because the minute data is collected relatively infrequently, no datacompression is performed on this data, and it is stored essentially “asis.” For convenience, in the preferred embodiment, all of the data whichis collected once a minute is stored together as part of the “minutepacket,” along with other data which is computed on a once per minutebasis. Thus, all of the stored data for a particular “minute” isidentified by a single timestamp. The various components of the minutepacket are discussed in more detail hereinafter with regard to the datapacket structures shown in FIG. 7.

Referring again to FIG. 6, the next most infrequent group of collecteddata is the 1 Hz group (Group D), for which data samples are collectedat the rate of one per second. The data collected as part of thisservice group is used to compute values that are stored as part of theminute packet. Within this service group are the processing of a breathsounds integral and a voice sounds integral. As discussed previously,the analog circuitry for each of the microphone-based signals includes aconventional integrator circuit which integrates the detected signalover time. The breath signal and the voice signal are each allowed tointegrate over the period of one second and, as part of the 1 Hz servicegroup, the integrators are reset after the integrated data is collected.

Other data which is collected and processed once per second are the ACand DC acceleration integrals and the activity duty cycle value. Thesignal from accelerometer 134 is collected as part of a 100 Hz servicegroup (Group B), but those collected samples are not stored in RAM 152.Instead, the software run by the RT controller 148 mathematicallyintegrates (accumulates) the 100 samples over a period of one second.Two types of integrals are calculated, the AC integral and the DCintegral. The DC integral is the average DC value of the samplescollected over the last minute, and is indicative of the relativeorientation of the patient's body. The AC integral is an average changein the signal per unit time, and is indicative of the level of physicalactivity of the patient. In addition to these values, an activity dutycycle value is calculated each minute which is a number between 0 and59. This number corresponds to the number of seconds in a given minutewhere the absolute value of the AC acceleration integral exceeds apre-set threshold value, thus giving an indication of relatively activebehavior as opposed to relatively inactive behavior.

Group C in FIG. 6 is the 10 Hz signal group, and includes the functionof transmitting any pending EKG data packets to the MS controller 150for storage in the appropriate section of RAM 152.

The 100 Hz group (Group B) includes the sampling of the ventilation(chest expansion sensor 132) signal and the sampling of theaccelerometer 134 signal. Prior to transmission to MS controller 150,the ventilation signals are subjected to a reduction algorithm whichoperates on the collected ventilation samples. This data reduction isdiscussed in more detail hereinafter.

The most frequent data sampling group is Group A, the 2.5 KHz group.This service group is dedicated to the collection of EKG data. Becauseof the importance of EKG data and the rapidly changing nature of an EKGsignal, the 2.5 KHz sampling rate is preferred. However, this relativelyhigh rate of data collection results in a large number of data sampleswhich, if stored “as is,” would consume a great deal of memory space inRAM 152. For this reason, the data is reduced by RT controller 148 andfurther compressed by MS controller 150 to change the form of the datato one which consumes a much smaller amount of memory. This datacompression technique is discussed in more detail hereinafter.

The structure of the data packets for storing the data collected by thebody monitor 108 are depicted schematically in FIG. 7. In the preferredembodiment, five different data packet structures are used to store thefollowing types of monitor data: “minute” data; “EKG-ts”(EKG-“timestamp”) data; “EKG-lid” (EKG-“large interval difference”)data; “vent-I” (“ventilation interval”) data; and “EKG-sid” (EKG-“smallinterval difference”) data.

To allow the different data packets to be distinguished when they arelater read from memory, the preferred embodiment relies on an encodingalgorithm, along with segregated memory locations in RAM 152. The dataencoding of the present invention relies on a logical “1” beingpositioned within the first byte of the packet in a specific positionrelative to the most significant bit (MSB) of that byte, with leadinglogical “0” s stored in any vacant preceding bits. The location of thefirst logical “1” relative to the MSB indicates the type of data whichis to follow.

In the present invention tags are assigned to the various fieldsprimarily based on frequency of use, and secondarily based on whichallocation would permit all packets to fit in the smallest number of8-bit fields. For example, the ventilation packet has the shortest tag(a one with no leading zeros) even though it is less frequent than theEKG-lid packet. However this allocation permits the ventilation packetto be stored in three bytes and the EKG-lid packet to be stored in twobytes. While changing the allocation of tags between these two packettypes would still require two bytes for the EKG-lid packet (with someunused bits), it would also require four bytes for the ventilationpacket. An additional advantage is provided by locating the mostfrequent fields of all, the EKG-sid fields, in a different portion ofmemory, with no tag field at all (as discussed below)

As shown in FIG. 7, each of the data types has a logical “1” in adifferent location in its first byte, except for the EKG-sid datapacket. The EKG-sid data does not require an encoded label because it isstored in the eight-bit EKG-sid zone 172 of RAM 152 (FIG. 5), separatefrom the remaining data types. While minute data, EKG-ts data, EKG-liddata and vent-I data is all stored in warehouse 170 (i.e. hexadecimalmemory locations 0×100 and above) starting with the lowest memoryaddress and progressing toward higher addresses in memory, EKG-sid datais stored in EKG-sid zone 172 starting with the highest memory addressallocated to EKG-sid data in RAM 152 and progressing toward loweraddresses in memory. In the preferred embodiment, there is no fixedborder between the warehouse 170 and the EKG-sid zone 172. If there is adata collision between the warehouse 170 and the EKG-sid zone 172 (i.e.if all of the memory in RAM 152 is filled), an error is detected and theMS controller 150 discontinues the data storage process. All dataalready stored in these two zones is retained.

Referring again to FIG. 7, the minute data packet has a first byte whichis all leading logical “0”s, except for the least significant bit (LSB).This first byte is a label for use in reading data out of memory whichindicates that the next thirty-one bytes of data stored in the warehouseare minute data. These thirty-one bytes are occupied as described below.

The first four bytes of the minute data packet contain “TIMESTAMP,” atimestamp for the data collected during the minute in question. The nextthree bytes contain “COUNT,” “ECOUNT” AND “VCOUNT,” respectively. COUNTis a sequence number of the current minute packet, modulo 256. That is,an eight-bit counter is incremented with each minute packet. The counterprovides a reference label for each minute packet, and rolls over every256 packets. ECOUNT is the total number of EKG packets sent by the RTcontroller 148 during the last minute, from 0 up to 255. In the eventthat more than 255 EKG packets are sent, the number 255 will bereported. VCOUNT is the total number of ventilation packets sent by theRT controller 148 during the last minute.

The next two bytes of the minute packet are EKG_DEPOL and EKG_REPOL,respectively. EKG_DEPOL contains the median EKG depolarization valueover the last minute and EKG_REPOL contains the median repolarizationvalue over the last minute. These are followed by one-byte fieldEKG_RETURN, which contains the average up-slope width of the EKG pulsesresulting from the heart muscle contraction.

The EKG fields are followed by two-byte field BARO_PRES (the barometricpressure), and four values derived from the sampling of the activitysensor (i.e. the accelerometer): ACTV_INTG (the activity integral—twobytes); ACTV_MAX (the maximum value of the accelerometer signal over thelast minute—two bytes); ACTV_DCYC (the average duty cycle of theaccelerometer signal over the last minute—one byte); and ACTV_INCL (theaverage inclination of the patient over the last minute as determined bythe DC integral of the accelerometer signal—two bytes).

The next two fields of the minute data packet are VOICE_INTG (theintegral of the detected voice signal—two bytes) and VOICE_DCYC (theduty cycle of the voice signal—one byte). Next are the BREATH_INTG (twobytes) and BREATH_DCYC (one byte), representing similar quantities forthe breath sounds signals. These are followed by three two-byte fields:T_PEC (the pectoralis temperature); T_ARM (the underarm temperature);and T_AIR (the ambient temperature).

The structure of other data packets, as they are stored in RAM 152 by MScontroller 150 are also shown in FIG. 7. The ventilation (chestexpansion sensor) packet vent-I consists of a single indicator bitfollowed by 23 bits of data in which are packed the timestamp relativeto the last minute packet and the amplitude of the ventilation signalbeing reported. All quantities, except 4-byte timestamps in the minutepacket, are stored most-significant-bit first (“big endian” as it isknown in the art). Four-byte timestamps are stored in Intelbyte-reversed format, though the bits in the individual bytes are storedbyte-msb-first.

The EKG data in the present invention is stored using three separatecompression/data reduction strategies. First, the raw EKG signal isconverted into set of QRS description packets by the RT controller 148which are then sent to the MS controller 150. Secondly, only theintervals between subsequent QRS events are stored in the RAM 152 formost heart beats, with the median values of the other features of thewaveform being stored once a minute in the minute packet, as explainedabove. Finally, the QRS interval data itself is subjected to asignificant degree of compression into one of three different types ofEKG timing data packets which are distinctly different, and which areused depending on the amount of data compression which may be applied ina particular instance.

In FIG. 7, the longer two EKG data packets (EKG-ts and EKG-lid) eachhave a bit labeled “P” in their first byte. The “P” bit is a flag whichis used during the decompression of EKG data to indicate the location ofthe next previous packet of EKG data. Because the EKG data is split intotwo separate zones of RAM 152, some of the packets may be EKG-sidpackets which are located in EKG-sid zone 172, while others are EKG-tsand EKG-lid packets which are stored in the warehouse 170 (FIG.5). The“P” bit is set to a logical “1” in a particular EKG-ts or EKG-lid packetto indicate that there is at least one EKG-sid packet which immediatelyprecedes it in time. Thus, as EKG data is being read out of thewarehouse, if a packet is encountered for which the “P” bit is set to alogical “1”, the decoding software jumps to the EKG-sid zone 172.

In the EKG-sid zone, EKG data is read out of memory until an“end-of-sequence” marker is encountered. Although the EKG-sid datapackets are 8-bits each, with no indicator bits, an EKG-sid packethaving the first bit set to a logical “1”, and the next seven bits setto “0” (i.e. numeric value—128) is used as the “end-of-sequence” marker.This value is reserved, and no actual EKG-sid data is allowed to bestored with this value. Upon encountering this marker, the decodingsoftware jumps back to the warehouse 170 to continue reading from thepoint at which the “P” bit was encountered.

As mentioned, the EKG-ts packet has four indicator bits, which arefollowed by twenty data bits. The EKG-lid packet has a three indicatorbits, followed by thirteen data bits. Finally, the EKG-sid packet issimply a one-byte data packet, which is identified as being EKG-sid datasimply by its storage in the EKG-sid zone. The selection of which packettype to use is based on the EKG compression algorithm and theirregularity of the EKG signal response. This may be better understoodwith reference to FIG. 8.

FIG. 8 depicts a typical EKG signal pulse, as detected by the EKG sensorelectrodes of the present invention. In order to minimize the data whichis necessary to describe the waveform, the RT controller 148 collectsonly time event and feature measurement information for each signalpulse. Using its internal registers, the RT controller 148 retainsinformation from a pulse which allows it to simplify the measurement ofthe next pulse. The feature measurements (labeled A, B, and C i n FIG.8) are sent to the MS controller 150 for temporary storage in thescratchpad 168 portion of RAM 152 (FIG. 5). These measurements arecollected over a period of one minute, and their median values arecalculated and subsequently stored as part of the “minute” data packetin the warehouse 170 of RAM 152.

An EKG pulse as shown in FIG. 8 occurs each time the patient's heartmuscle contracts and expands. The nature and cause of an electrical EKGsignal is well known in the art and will not be discussed herein in anydetail. Each pulse consists of a temporary increase in electricalpotential caused by excitation of the patient's ventricles (i.e.depolarization), and is followed by a temporary decrease in electricalpotential caused by recovery of the patient's ventricles (i.e.repolarization). In between pulses, the signal amplitude remainsconfirmed to a baseline level, the varying magnitude of which isprimarily due to electrical noise or detected skeletal muscle signals.

To describe each EKG pulse, the present invention uses six differentmeasurements: 1) the departure of the signal amplitude from baseline bymore than a predetermined amount (which is selected to be at or near 10%of the prior pulse amplitude in this embodiment); 2) the slope of theinitial increase in signal amplitude; 3) the maximum amplitude of thepulse; 4) the slope of the decrease from full positive amplitude to fullnegative amplitude; 5) the minimum amplitude of the pulse; and 6) theslope of the increase back to baseline from full minimum amplitude. Thepreferred method of obtaining this information involves thedetermination of time intervals between certain features of eachwaveform, from which the desired measurements can be approximated.

As mentioned previously, in the preferred embodiment, the EKG signal issampled approximately 2500 times per second. An average EKG pulse is 80ms long, which results in approximately 200 samples to describe eachpulse. Certain features of each pulse are determined by the RTcontroller 148 from the samples, and used for making measurements in thenext subsequent pulse. For one, the RT controller 148 maintains anaverage baseline value, which is continuously updated when the RTcontroller is not tracking an EKG pulse in progress. The RT controlleralso saves values derived from the maximum and minimum amplitudes of acurrent pulse which are used to assist in the detection of the featurepoints of the next pulse.

When a sample is received which indicates that the EKG signal hasdeparted from the average baseline value by more than 10% of theamplitude of the prior pulse the RT controller enters into its QRScomplex recognition routine. The subsequent data samples are then testedagainst values representative of 25% and 75% of the maximum amplitude ofthe previous pulse. The separation between these data samples in time isdefined as the width (labeled as feature “A” on FIG. 8) of thedepolarization up-slope, and this width value is measured and stored byRT controller 148. By knowing this width, an approximation of the medianrepresentative pulse up-slope may be generated. In the preferredembodiment, the width is saved by saving an indication of the timevalues for each of the 25% and 75% points (relative to the initialdeparture from baseline). The midpoint of feature “A” (50%) isconsidered the point of greatest slope and the four-byte absolutetimestamp of this event is considered the “official” timestamp of theEKG.

The maximum value of the EKG pulse is determined by the RT controller148 from the available samples, and is temporarily saved for use infinding the 25% and 75% points for the feature measurements in the nextpulse. The next EKG measurement to follow the maximum value is the widthof the down-slope from the maximum pulse value to the minimum pulsevalue (labeled as feature “B” in FIG. 8). This value is determined byusing the maximum value and the minimum value from the next previouspulse as a measure of the peak amplitudes. The 25% points of each ofthese extrema are then found, and the collected data samples compared tothem. The separation in time between 25% of the maximum and 25% of theminimum is indicative of the desired width measurement and so ismeasured and retained.

The minimum value of the pulse (like the maximum value) is temporarilysaved for use in determining the 25% and 75% values for the featuremeasurements of the next pulse. The last measurement taken is the timebetween the 75% and 25% points of the repolarization upslope (labeled asfeature “C” in FIG. 8). Like the previous measurements, this width usesthe time separation between the 75% and 25% points of the minimum valuestored from the previous EKG pulse. The time interval between these twopoints is measured and saved, along with the other saved time values,for transmission to the MS controller 150 and subsequent compression andlong-term storage.

Because the expression of each of the absolute timestamps requires fourbytes of memory, it is desirable to reduce this data size to allow forgreater density of storage in RAM 152. Thus, instead of storing each ofthe timestamps, the intervals between successive timestamps arecalculated for many of the EKG events. Because a regular intervalbetween EKG events is expected, the data may be further compressed bycalculating the difference between one interval and a subsequentinterval.

In order to begin a calculation of interval differences, at least twoconsecutive timestamps must be known. Therefore, actual values of thefirst two timestamps are stored “as is” as EKG-ts data. The timeinterval between these two timestamps is then calculated. Upon theoccurrence of a third event, the interval between the second and thirdevents is calculated, and the second interval is subtracted from thefirst interval. The resulting value is the first calculable intervaldifference, and is stored as the third EKG data packet. Subsequent datapackets are calculated and stored in the same manner (i.e. the thirdinterval is subtracted from the second interval to find the secondinterval difference, the fourth interval is subtracted from the thirdinterval to find the third interval difference, and so on).

Depending on the variation from one interval difference to the next, theinterval differences may ultimately be stored in one of two differentpacket structures, the EKG-lid packet or the EKG-sid packet (see FIG.7). Because a larger interval difference requires more space in memory,the selection of which packet structure to use is made based on thenumber of bits required to express the interval difference.

If the interval difference can be expressed in a maximum of eight bits,then it is stored by the MS controller 150 in the EKG-sid zone of RAM152 in an “all-data” EKG-sid packet such as that shown in FIG. 7. If theinterval difference requires more than eight bits, but fewer thanfourteen bits, then it is stored by the MS controller 150 in thewarehouse in the EKG-lid format shown in FIG. 7. Finally, if theinterval difference requires more than thirteen bits to describe, the MScontroller 150 stores an actual timestamp of the current EKG eventrelative to the last minute marker (as opposed to storing an intervaldifference). This timestamp is stored in the warehouse in the EKG-tsdata packet format. Because the timestamp is relative to the last minutemarker, four bytes are not necessary (as with the absolute timestampsstored with the minute packet). Instead, the data is stored in nineteenbits which fit in three bytes along with the encoding bits and the “P”bit.

The logic flow of the firmware run by the RT controller 148 and the MScontroller 150 is depicted in FIGS. 9-12. Referring to FIG. 9, whenpower is first provided to the RT controller 148, all registers andother memory of the controller are initialized at step 900. Thecontroller is interrupt-driven, but it is only after initialization thatthe interrupts are enabled at step 902. The controller then examines aninternal task register 904 which is used to store a list of pendingcontroller tasks. Since the system has just been powered up, there areno pending tasks, and the controller proceeds from decision box 906 intoa sleep state 908, where it waits for an interrupt message.

The interrupt-generated process of the RT controller 148 is shown inFIG. 10. Each interrupt is generated by the 32.5 KHz crystaloscillator-based timer maintained by the hardware of the RT controller148, the frequency of which is divided by 13 down to a 2.5 KHz interruptcycle. Thus, in the preferred embodiment, one interrupt signal isgenerated each 400 μs. Each of the other service groups shown in FIG. 6has a periodicity which is a multiple of the EKG period. The controllermaintains a “master clock” which is incremented as part of the interruptroutine each time the interrupt signal is generated. Other counters arealso maintained which trigger the activities for the other servicegroups every “nth” interrupt, where n is the multiple of the particularservice group period in question relative to the interrupt signalperiod. Every service group, therefore, is ultimately driven by the sameinterrupt signal, thus ensuring timing accuracy and precision.

Referring to FIG. 10, when the timer-generated interrupt is received,the RT controller 148 suspends any processing activities already inprogress. The existing context (i.e. contents of processor registers andvariables) is saved in local memory at step 1000. The processor, in step1002, then signals the ADC 146 to sample the EKG channel (i.e. toconvert the analog signal present on the EKG input). The RT controller148, in step 1004, then calls an EKG processing function which is shownin FIG. 11, and discussed in further detail below.

Once the EKG function is complete, the master clock is updated by the RTcontroller 148 in step 1006. The counters for the other service groupsare decremented accordingly, and the scheduling for the other servicegroups is accomplished by setting the appropriate bits in a taskregister (step 1008). The task register is an eight-bit register whichis maintained by the RT controller 148, where each of the lower fourbits of the register is used to represent a task for a different servicegroup. The 2.5 KHz group is never explicitly scheduled. When the bit fora particular service group is set to a logic “1”, the RT controller 148takes the data samples associated with that group. Subsequent processingtasks related to that data are performed at a later time, in betweendata collection cycles. When the processing of a task group is finished,the RT controller resets that group's task bit to logic “0”, indicatingcompletion. As shown in step 1010, all of the necessary samples for thenon-EKG service groups having their task bit set to “1” are taken beforeany processing of those samples occurs. This is to prevent delays in theacquisition of samples while other processing activities are takingplace, since such delays could skew the regularity of the sampling forsome of the service groups.

After sampling is performed for the appropriate groups, thepreviously-stored context is reloaded into the appropriate registers(step 1012), and control is returned to the next instruction of thecontroller program after that during which it was interrupted. If theinterruption came during the sleep cycle 908 of FIG. 9, control isreturned to step 904 after processing the interrupt sequence of FIG. 10(as shown by the broken line of FIG. 9). However, since the interruptmay also be serviced while the tasks are being processed in step 910, aninterruption during this step causes a return to the next pendingprogram instruction of the task processing of step 910.

In step 904 of FIG. 9, the task register is tested to see if there areany tasks pending. If so, the decision step 906 causes the highestpriority task to be called. In the preferred embodiment, the priority ofthe tasks is according to the frequency of the related data sampling,with the higher sampling rate processing tasks having the higherpriority. Since processing tasks may not yet be complete when the nextinterrupt cycle occurs, the processing must be suspended until theinterrupt service is complete. Such postponements of the processingfunctions are problematic only if processing of a sample for aparticular service group is not yet completed by the time the nextsample for the same group is collected. Therefore, since the servicegroups with longer sampling periods have greater intervals betweenconsecutive samples, they are assigned a lower priority to allow groupswith shorter intervals to be serviced before them.

After the execution of a task in step 910 (which includes the resettingof the associated task bit), the task register is again checked in step904. If further tasks are pending, step 906 again transfers control tostep 910, where the (now) highest priority task is executed. Thisprocess continues until no tasks remain, at which time step 906 causesthe RT controller 148 to enter sleep state 908.

The processing of EKG samples -performed by the RT controller 148 isdemonstrated by the flow chart of FIGS. 11A-11D. This processing isadaptive in that it responds to the changes in the sampled data itself.In order to reduce the amount of stored EKG data, only samples which aretaken during an EKG pulse are used for calculating the stored EKG data.As discussed previously with regard to FIG. 8, the only EKG data whichis ultimately stored in RAM 152 are the feature measurements and theinterval information between individual EKG events. Preprocessing forthis data compression is performed by the RT controller 148 via theprogram flow shown in FIGS. 11A-11D.

As shown in step 1100, with each new EKG sample, the RT processorupdates a running average sample value indicative of the baseline valueof the EKG signal. Each new sample is also tested against the baselinein step 1102 to determine whether it has exceeded the baseline averageby more than a predetermined amount. In the preferred embodiment, thepredetermined amount is equal to 10% of the baseline average, andrepresents a “guard band” which reduces false determinations of theinitial upslope of an EKG pulse. As shown in step 1102, each samplevalue is tested to determine whether it exceeds the sum of the baselineand the guard band and, if not, control is returned to step 1100.

If the baseline/guard band total is exceeded, the RT controller proceedsto step 1104, where the sample value is compared to the value 0.25Y_(MAX) where Y_(MAX) is the stored maximum value from the previoussample. Each successive sample is tested against this value until it isexceeded, whereupon a sample counter is started. For each successivesample, the sample value is first tested against the value 0.5 Y_(MAX)in step 1105 and, for each sample which does not exceed this value, thesample count is incremented in step 1109. When the 0.5 Y_(MAX) value isexceeded, the timestamp for the current EKG pulse is recorded in atemporary memory location in step 1107. The program flow then proceedsto step 1108, where the sample value is repeatedly tested against thevalue 0.75 Y_(MAX). For each subsequent sample which does not exceed the0.75 Y_(MAX) test value, a sample counter is incremented in step 1110.Once the 0.75 Y_(MAX) value is exceeded, the sample count is stored instep 1112 to a temporary memory location as SCOUNTA. This and all EKGmeasurements are stored in memory on the RT controller 148 itself in aformat which facilitates efficient transmission to the MS controller150.

In the next stage of the sample processing, the sample value is testedto determine whether it is a maximum point of the EKG pulse. This isaccomplished in the flow logic of FIG. 11A by the comparison of thecurrent sample value “s[n]” to a previous sample value (s[n−1]) minus aconstant Δ. Δ is a predetermined tolerance which ensures that the samplevalue is changing by an amount sufficient to differentiate between noiseand an actual change in signal direction. As the EKG signal rises, thevalue P (initially set in step 1109 to the first value of S afterstoring SCOUNTA) is updated each time the EKG value is greater than P+Δ(steps 1114 and 1115, FIG. 11B). If the signal should happen to fallslightly, but not as far as P−Δ, it is construed as noise, P is notupdated, and no other changes are made. Only when the signal falls belowP−Δ (as tested in step 1116) has it been “firmly” established that thesignal has begun its downslope. At that point (step 1117), the mostrecent value of P is declared the maximum point of the EKG signal, andis stored as Y_(MAX) to be used for the processing of the next EKGpulse. If the overall EKG signal is rejected at some point in the EKGroutine, it is determined that a valid EKG event did not occur, and theold Y_(MAX) and Y_(MIN) values are retained for use in processing thenext pulse.

The next data collection stage is for the width of the down slope. Instep 1118, the sample value is compared to the value 0.25 Y_(MAX). TheRT controller 148 cycles through step 1118 with each sample until asample is encountered which is less than the 0.25 Y_(MAX) value. At thattime, a sample counter SCOUNTB is started in step 1120. Referring toFIG. 11C, the RT controller 148 begins comparing subsequent samples tothe value 0.25 Y_(MIN) in step 1122, where YMIN equals the minimumsample value stored during the next previous EKG pulse. For each samplewhich is not less than 0.25 Y_(MIN), the sample counter is incrementedin step 1124. Once a sample less than 0.25 Y_(MIN) is encountered, thetotal of the sample count is stored in step 1126.

The determination of Y_(MIN) value is similar to the determination ofY_(MAX), changed as needed to detect the first rise from a fallingsignal instead of the first fall from a rising signal. In steps 1127 and1128, the sample value is repeatedly tested against the value P−Δ, andthe value of S replaces P when it is more than Δ less than P. Thisensures that P will be a true minimum (excluding noise fluctuationswithin the Δ error range). In step 1129, the sample value “S” is testedagainst P+Δ and, if it exceeds P+Δ, P is stored as Y_(MIN) in step 1130.Because the increase in the sample value above P+Δ indicates thebeginning of an upslope, Y_(MIN) is thus a valid determination of theminimum point on the EKG curve.

After the minimum value is determined, the RT controller 148 beginscomparing the samples to the value 0.75 Y_(MIN) in step 1132 (FIG. 11).Once this value is exceeded, a sample counter is started in step 1134.The RT controller 148 then begins testing samples against the value 0.25Y_(MIN) in step 1136, and, in step 1137, increments the sample counteronce for each sample which does not exceed the 0.25 Y_(MIN) value. Once0.25 Y_(MIN) is exceeded, the RT controller 148, in step 1138, storesthe accumulated sample count as SCOUNTC.

After step 1138, the RT controller 148 begins comparing the samplevalues to the value of the baseline average minus the guard band value(step 1140). Once a sample is encountered which has a value within 10%of the baseline, the RT controller 148 determines that a valid EKG eventhas been detected and advances to step 1142. The RT controller thencomputes the new “feature points,” which are the values of 0.25 Y_(MAX), 0.75 Y_(MAX), 0.25 Y_(MIN) and 0.75 Y_(MIN) which are found using thenewly-measured extrema, and which will be used during the processing ofthe next EKG pulse samples. In this step, the RT controller 148 alsoassembles the EKG packet using the newly acquired data and queues it upfor transmission to the MS controller 150. The RT controller thenreturns to step 1100 for the next EKG sample (FIG. 11A) to continueupdating the baseline average.

During each of the steps of the program depicted in FIGS. 11A-11D inwhich new samples are detected, a timer is initiated (or reinitiated)which, when it expires, causes the processing of the samples for thecurrent pulse to cease. This timer provides an upper limit on thewaiting period for certain sample values to be acquired. Byreinitializing the timer with each step, the same amount of time isprovided for each to advance to the next step. If the timer expiresduring any of these steps, the RT controller 148 proceeds to a waitstate where it stays until the EKG signal returns to within the baselineguard band. Due to the timer expiration, the signal is determined to bean invalid QRS complex, and no data is transmitted to the MS controllerand no new feature points are computed. Once the EKG signal has resumed,the RT controller 148 returns to step 1100 where it continues to trackthe baseline average.

The processing of each ventilation sample begins when the RT controller148 comes across the ventilation task bit set in the task register, andresponds by instructing the ADC 146 to convert a sample from the chestexpansion sensor channel. The converted signal is then received by theRT controller 148 for processing.

FIGS. 12A and 12B depict the ventilation processing routine of the RTcontroller 148. As shown, when the task begins (in state 1200), thecontroller can follow one of three different paths, depending on thevalue stored in a “state” register of the RT controller 148. Differentvalues in the state register are used to indicate the current state ofchest expansion as being “rising”, “falling” or “plateau.” A valueindicating a “rising” state is stored in the state register when thepatient's chest circumference was larger in the last sample, relative tothe sample before it, by a predetermined amount. Similarly, a valueindicating a “falling” state is stored in the state register when thepatient's chest circumference was smaller in the last sample, relativeto the sample before it, by a predetermined amount. Finally, a valueindicating a “plateau” state is placed in the state register when thepatient's chest has neither expanded nor contracted by at least thepredetermined amount over a set number of consecutive samples.

The path in the ventilation routine which the RT controller 148 takeswhen the task is begun is determined by the current value in the stateregister. These different paths have been identified in FIG. 12A by theconditions which the values in the state register represent (i.e.rising, falling or plateau). A ventilation packet is transmitted onlywhen it indicates an “inflection point” (the start of a “rising” or“falling”chest expansion period), or the start of a “plateau” condition(when the state of the patient's respiration does not change for apredetermined time). Each ventilation packet transmitted to the MScontroller 150 contains a timestamp of the sample and the digital valueof the sample. This data is then converted into the vent-I packetstructure discussed previously with regard to FIG. 7.

Each of the rising and falling paths of the FIG. 12A flow chart begin bycalling a plateau detection function in steps 1202 and 1204,respectively. The plateau detection function keeps track of the numberof consecutive samples for which the ventilation signal remainssubstantially unchanged as a measure of whether a “plateau” in thepatient's respiration has been reached. This function is demonstrated bythe flow chart of FIG. 13.

As shown in FIG. 13, the value of the present sample (“S”) is firstcompared to the value S_(X). S_(X) is a temporary variable in which thevalue of a previous sample is stored, and which provides a referencevalue against which to test for deviation from a predetermined guardband (either plateau guard band ±δ_(P), or rising/falling guard band±δ_(G)). In step 1300, the sample is first tested to determine whetherit exceeds the value of S_(X)+δ_(P), where δ_(P) defines a plateau guardband and represents a limit beyond which the sample value must deviatefrom S_(X) to be considered a state change during the plateau detectionfunction. Similarly, S is tested against the other side of the plateauguard band (i.e. S_(X)−δ_(P)) in step 1302. In either case, if thesample value has deviated by more than δ_(P) since the last statechange, the value of variable PCOUNT is set to zero in step 1303, S_(X)is set to the value of the current sample in step 1305 and the plateaudetection function is terminated, with control being returned to step1206 or step 1208 of FIG. 12A, as appropriate.

If the sample value is within the plateau guard band, the value of aplateau counter PCOUNT is incremented in step 1304. If the value ofPCOUNT is equal to one (step 1306), indicating that the current sampleis the first sample of a potential plateau, the timestamp of the sampleis recorded in step 1308 as an indication of when the current plateaumeasurement began. Control is then returned to the appropriate step(i.e. 1206 or 1208) of FIG. 12A. If PCOUNT is not equal to one, it istested in step 1310 to determine if the count has reached “N”, which isthe count value for which a plateau will be declared. In the preferredembodiment N equals 30, but those skilled in the art will recognize thatother values may alternatively be used. If PCOUNT is found to not yetequal N in step 1310, control is returned to either step 1206 or 1208 ofFIG. 12A, as appropriate.

If PCOUNT is found to equal N in step 1310, a plateau is confirmed, anda plateau packet, including the timestamp stored in step 1308, istransmitted to the MS controller 150 in step 1312. The state variable isthen set to indicate a plateau state in step 1314, and control isreturned to step 1206 or 1208 of FIG. 12A, as appropriate.

Referring again to FIG. 12A, when the plateau detection function, calledin either step 1202 or 1204, is complete, the state variable is testedin either step 1206 or 1208, as appropriate, to determine whether aplateau has been found (i.e. if the state register has the “plateau”value stored in it). If so, the RT controller 148 exits the ventilationroutine. If no plateau has been found, the program advances to determinewhether a rising or falling state change has occurred.

On the “rising” flow path, step 1210 tests the sample value against alower guard band limit which is defined by S_(X)−δ_(G), where δ_(G) isthe limit beyond which a sample value must deviate from S_(X) to beconsidered a state change while on the “rising” or “falling” flow paths.If the sample is found in step 1210 to be above the lower guard bandlimit, then the rising condition is unchanged. The sample value is thentested in step 1211 against an upper guard band limit defined byS_(X)+δ_(G) to determine whether it is necessary to update the value ofS_(X). If the sample value does not exceed the upper limit, the routineexits. However, if the patient's chest has expanded beyond the upperguard band limit, then the value of S_(X) is set to the current samplevalue in step 1213 to ensure the accuracy of subsequent guard bandtests, after which the routine exits. If, in step 1210, the sample valueis found to be below the lower guard band limit, the state variable ischanged to falling in step 1214, an inflection packet (including thecurrent timestamp) is transmitted to MS controller 150 in step 1216 andthe sample value is stored as the value for S_(X) in step 1218, afterwhich the routine exits.

The “falling” flow path functions in an essentially symmetrical mannerto the “rising” path in that, if the sample value in step 1212 is foundto be below the upper guard band limit, then the state variable is notchanged, and the routine exits if the sample is not found to be outsidethe lower guard band limit in step 1215. If the sample is found to beoutside the lower guard band limit in step 1215, the current samplevalue is stored as S_(X) in step 1217, after which the routine exits.However, if the sample value is above the upper limit of S_(X)+δ_(G), instep 1212, then the state variable is set to rising in step 1220, aninflection packet is transmitted in step 1222 (including the currenttimestamp) and the sample value is stored as the new value for S_(X) instep 1218, after which the ventilation routine exits.

The third branch of the flow chart is the “plateau” branch is depictedin FIG. 12B. This path is followed by the RT controller 148 during theprocessing of a sample when the state variable indicates that a plateauhas been declared. In step 1224, the RT controller 148 first tests thesample value against the upper guard band limit δ_(G). If the samplevalue is not above the upper guard band limit, then it is then testedagainst the lower guard band limit S_(X)−δ_(G) in step 1226. If thesample value is not below the lower limit, then the plateau conditioncontinues, and the routine exits.

If the sample value is found to be above the upper guard limitS_(X)+δ_(G) in step 1224, the state register is set to “rising” and thecurrent timestamp is recorded (step 1228). Similarly, if the sample isfound to be below the lower guard limit in step 1226, the state registeris set to “falling” and the current timestamp is recorded (step 1230).Each of steps 1228 and 1230 is followed by the transmission of aninflection packet to the MS controller 150 in step 1232. The plateaucounter PCOUNT is then reset in step 1234, the current sample value isstored as the new value of S_(X) in step 1236, and the routine exits.

FIG. 14 is a flow chart depicting the processing steps of the MScontroller 150. When initially powered, the MS controller hardware andvariables are initialized in step 1400. The MS controller 150 thenchecks for data present in the scratchpad of RAM 152 in step 1402 and,if no data is present, enters a sleep state 1404, in which most of theMS controller's circuits are powered down, except those which monitorfor the “wakeup” (i.e. new data interrupt) signal from the RT controller148.

If there is data present in step 1402, then the MS controller 150proceeds from step 1402 to step 1412 where it performs the necessarypost-processing tasks (i.e. data compression and/or packet assembly) onthe oldest data packet stored in the scratchpad). During thepost-processing of step 1412, the MS controller 150 may be subject tothe new data interrupt from the “wakeup” signal. After post-processing,the MS controller proceeds to step 1414, where it sets the appropriateaddress lines of RAM 152 and stores the processed data. The programcontinues at step 1402 to check the data queue for more data.

The data interrupt causes the MS controller 150, whether in step 1412 orin sleep state 1404, to proceed to step 1406, where the current contextof the controller is saved. The MS controller then services the “wakeup”request of the RT controller 148 by storing the incoming data packet insome of its working memory space (i.e. the “scratchpad”) of RAM 152 instep 1408. This interrupt feature ensures that the operations of the RTcontroller 148 (which are more time-critical than that of the MScontroller 150) are not delayed by the data processing and storageoperations of the MS controller 150. The context is then restored instep 1410, and the MS controller proceeds to the next instruction stepafter the one during which it was interrupted. In the case of aninterrupt during sleep state 1404, this next instruction is to proceedto step 1402 to check for new data in the data queue (as shown by thebroken line of FIG. 14). If the interrupt request came during step 1412,the controller resumes its data processing tasks in step 1412 whereverit left off.

SUBJECTIVE DATA LOGGER

The subjective data logger 106 of the present invention may take theform of any data input device, including a personal computer. However,because it is desirable to provide the patient with a portable datalogger which will allow the patient to record events at any time duringthe day, the present invention makes use of a battery-powered, handhelddata input device such as the Newton® Message Pad, a registeredtrademark of the Apple Computer Corporation. Such a device is shown inFIG. 15, and includes a liquid crystal display (LCD) screen 200 which isinteractive in that a patient may use a stylus or “pen” 202 to provideinputs to the data logger 106 by touching the pen 202 to the screen 200.The data logger 106 has a continuously running clock such that, whenthere is a data entry by the patient, the time of the entry isautomatically recorded to provide a timestamp such as that used with themultiparametric monitor 108. Time is synchronized between the database,the monitor, and all other entities involved with collection and storageof data each time a data connection between these components isestablished.

Because methods of programming the Newton® Message Pad are well-known inthe art, the specific program steps for the data logger 106 are omittedfrom this description. The data logger 106 is described, instead, interms of its screen displays and available inputs and outputs. Thoseskilled in the art will recognize that there are a number of known waysto program these features into the data logger 106, and that it is thespecifics of the type of data collected and the interactive features ofthe data logger which are particular to the present invention.

Some of the input methods provided with the data logger 106 of thepresent invention are demonstrated by FIGS. 16-20, which show several ofthe screen displays of the preferred embodiment. FIG. 16 shows a “painlocation” screen by which the patient may log the location and severityof pain which they experience. As depicted in the figure, the screendisplay includes an image of a human body 204 and a sliding input scale206 for indicating the intensity of the pain. The screen display of FIG.16 includes a prompt to the patient for inputting data, as demonstratedby prompting message 208, which requests that the patient indicate anarea of the body which hurts.

Data selections are made by the patient touching the pen 202 to aportion of the display 204 of the human body which corresponds to alocation of pain on their own body. The patient then touches the pen 202to a part of the sliding scale 206 to indicate the relative severity oftheir pain. When the “next” region 210 of the screen is touched with thepen 202, the selected region of the body and the intensity value arerecorded, along with the current timestamp, and the subjective dataprogram advances to the next input screen.

Also located on the screen of FIG. 16 are regions 212, 214 of the screenfor selecting either a front view or a rear view of the human body image204. The front view is depicted in FIG. 16, and an isolated view of thebody image which is displayed when a rear view is selected is shown inFIG. 16A. The use of two different views allows the patient to be morespecific when indicating the location of the experienced pain. As witheach of the data input displays, the display of FIG. 16 includes promptsto the patient for the data to be input. A prompting message 208requests that the patient indicate an area of the body which hurts.

In one embodiment of the invention, the selection of certain portions ofthe body image on the screen of FIG. 16 by the patient touching thoseportions with the pen results in a new screen being displayed whichcontains a magnified image of the selected area of the body. Forexample, in FIG. 16B, the image of a human hand 205 is displayed inresponse to the user selecting the hand region of the main body image204 of FIG. 16. This magnified image may then be used by the patient toselect a portion of the body more specifically (e.g. one of the fingersof the hand). As with the main screen of FIG. 16, the sliding scale 206and the prompting message 208 are displayed for the user. Selection ofthe “next” region 210 in the magnified body part screen causes the datalogger program to advance to the a pain history screen, as discussedbelow.

After selecting the “next” region 210 of the pain location screen(either the main screen of FIG. 16 or the magnified image screen of FIG.16B), the preferred embodiment of the data logger 106 advances to a painhistory screen 212 with which the patient can indicate the recenthistory of pain in that particular region. This screen is depicted inFIG. 17, and allows the patient to input the pain history in a graphicalformat. The graph displayed has a sliding intensity scale along thevertical axis, and a time scale along the horizontal axis. By touchingthe pen 202 to a particular region of the graph, the patient canindicate a level of pain intensity at a particular time of day. A sleepscale 214 is also provided, and is aligned with the time scale of thehorizontal axis of the history graph. This sleep scale 214 allows thepatient, by touching the pen 202 to different regions of the scale, toindicate the time of day during which he or she was asleep.

Once the patient has made selections indicating a pain history and hasentered any appropriate sleep data, the “yes” region 216 of the screenmay be selected with pen 202 in response to the prompt as to whether thepatient wishes to document another pain site. If “yes” is selected, thenthe current data selected on the screen 212 is recorded, along with acurrent timestamp, and a new pain location screen (as shown in FIG. 16)is displayed. If the patient wishes to move on to another type ofsubjective data input, the “next” region 218 may be selected. Thisresults in the storage of the selected data and the timestamp, andadvances the subjective data program to a new data screen.

Another of the subjective data input screens of the preferred embodimentis the “mood” screen 220 shown in FIG. 18. The “mood” screen allows thepatient to input his or her relative level of different emotions.Several of these are depicted on the screen 220 of FIG. 18, and thoseskilled in the art will recognize that many more similar mood or emotioncategories may be included. Those displayed on the screen 220 aredepression, anxiety and irritability. The sliding scales adjacent toeach of the labels for these emotions allow the patient to select therelative severity of the emotion in question. Once the selections havebeen made, the patient selects the “next” region 222 of the screen withpen 202, and the subjective data program advances to the next screen.

FIG. 19 is a display screen 221 which is in the form of a medicationtimeline. The horizontal scale shows relative times of day, and byselecting one of the drugs indicated by the drug regions 224 of thescreen and then selecting a particular time of day, the patient mayrecord that one dose of that particular drug was taken at that time ofday. In the preferred embodiment, each different drug has adistinguishable icon, and the screen “echoes”back the patient'sselections by displaying the icon of the selected medication on thetimeline chart above the selected time. Thus, if two doses of aparticular medication are taken at a particular time, two of the iconscorresponding to that medication are displayed above that time on thetimeline. Once all of the medications and times have been entered by thepatient, touching the “next” region 226 of the screen causes themedication/time information, and a current timestamp to be stored, andthe program advances to the next screen.

In the preferred embodiment, the medication timeline screen of FIG. 19is followed by the “side effect” screen 228 shown in FIG. 19A. The sideeffect screen is a list of typically-encountered side effects, and asksthe patient to record those side effects which have been experiencedsince a last entry was made using the data logger 106 (the list of FIG.19A is the preferred embodiment, and other side effects may beadditionally or alternatively listed). Adjacent to each of the listedside effects is a “check-off” box which may be selected using the pen202 to indicate that the particular side effect is one which the patientexperienced. A sliding scale is also provided adjacent to each listedside effect to allow the patient to select the relative severity of eachparticular side effect. After the appropriate side effect informationhas been selected, the patient selects the “next” region 230. Thiscauses the side effect data, along with the current timestamp, to berecorded, and the program advances to the next input screen.

The subjective data logger stores all of the subjective informationcollected in a local memory unit for later uploading to the database 102(FIG. 1). The data collected by the data logger is recorded in anywell-known format, the specifics of which are not discussed herein.Periodically (preferably once a day) the patient connects the datalogger 106 to modem 110 or another data transfer device which transfersthe data to the database 102 using a known data transfer protocol. Thisdata, along with the data from the multiparametric monitor, isthereafter available to a physician or scientist with access to thedatabase who may review the information embodied in the data.

In addition to the collection of subjective data, the data logger 106may be used by the patient to communicate with a physician or researcherwho reviews the patient's records in the database. Shown in FIG. 20A isa message screen of the subjective data logger in which a space 250 isprovided where the patient may write a message to a person who reviewshis or her database records, such as a reviewing physician. In thepreferred embodiment, the message is transmitted as bit-mapped data,such that the when displayed by the recipient, it appears in thehandwriting of the patient. Although software is available which couldbe used to convert the message into characters, the handwriting itselfmay be of use to a reviewing physician in assessing the patient'smedical condition and in establishing authenticity of the record.

A messaging screen such as that of FIG. 20A can be used as the lastscreen of an data input program, so that the patient may comment on anyof the previous inputs, as well as anything else of interest. Bypressing on the “send report” zone 254 of the screen with the pen 202(FIG. 15), the entire report, including the message, is transmitted tothe database. As shown, the FIG. 20A embodiment also includes acheck-off box 256 by which the patient can indicate that he or shewishes a database manager to phone them. The check-off box may be“checked” by touching it with the pen 202.

The preferred embodiment also includes a signature space 252 in whichthe patient can place his or her signature or initials. Like the messagespace 250, the signature space is preferably transmitted in a bit-mappedformat, allowing the handwriting to be assessed by the reviewingphysician, and also allowing the comparison of the signature or initialsto a record of the patient's signature or initials. This comparisonassists in confirming the patients identity, and may be used as asecurity measure to help prevent unauthorized access to the patient'sdatabase records and to confirm the validity of the uploaded data.

In addition to allowing for messages from the patient to a databasemanager or reviewing physician, the present invention also provides forthe transmission of messages in the other direction. That is, a databasemanager or reviewing physician can send messages to the patient via thesubjective data logger 106. When the data logger 106 is first placed incommunication with the database 102 via modem, the data recorded by thepatient is uploaded to the database. In addition, any new information tobe transmitted to the data logger is downloaded from the database. Thisinformation may include modifications to the data logger program ormessages to the patient.

The message screen of the present invention on which messages are viewedby the patient is showed in FIG. 20B. The messages are printed out in amessage region 258 of the screen. As shown, because of the inputcapabilities of the data logger screen, the messages shown on the screenmay include questions with a region provided for a response. In FIG.20B, a question with a “yes” or “no” response field 260 is provided inwhich a patient may check off their response to the question. In thepreferred embodiment, the “received message” screen would precede the“transmitted message” screen in the sequence of screens presented to thepatient. As such, the patient's answers to any questions embedded in thereceived message can be included with the transmission to the database.Furthermore, messages from the patient can include references to themessage received.

In one embodiment of the invention, the communication between thepatient and other user's of the patient's database data (such asdifferent doctors consulted by the patient, or the database manager) isstructured using a standard electronic mail (E-mail) type protocol. Infact, the system could make use of existing E-mail software. While thedatabase 102 serves as a central location for the storage of all of thepatient's data, different destinations for the data could be specifiedby the patient so that a particular report or message is sent toparticular doctors, or other involved parties. Patients using thedatabase may also be divided into groups having particularcommonalities. For example, all of the patients of a particularphysician might have a particular group designation, thus allowing asingle message from the physician to be addressed to all of them.

In general, the present invention may make use of any existingcommunications protocol which facilitates the data collection, storageand retrieval process. Those skilled in the art will recognizevariations in the data communications and storage protocols which may beadvantageous to the invention. All of these equivalents are intended tobe within the scope of the invention.

In one alternative embodiment of the invention, which makes use of themultiparametric monitor, the medication taken by a patient is trackedusing an “electronic pill.” FIG. 21 is an exploded view of a capsule 232used in this embodiment which has a first section 234 and a secondsection 236 which mates with the first section to enclose the contents.This capsule contains the prescribed dosage of medication 238 for thepatient, along with a tiny transmitter 240. The transmitter includes aminiature power source 242, and a pulse generating microcircuit 244,which receives power from the power source 242.

In order to conserve power, the microcircuit 244 is inactive while itremains in the capsule. However, once the capsule is dissolved, a liquidsensor 246, of known design, provides a signal to the microcircuit whichactivates it. The microcircuit 244 then begins outputting the pulsedsignal on collapsible leads 248. Also as a result of the capsuledissolving, the leads 248 unfold into a dipole arrangement, and thepulsed signal is conducted from the leads 248 through the patient'sbody.

The pulsed signal output on the leads 248 is detected at the skinsurface by EKG electrodes 140, or other, more advantageously placeddetection contacts. The pulsed signal which is generated by themicrocircuit is an identification (ID) signal that identifies themedication in the capsule. That is, each different type of medicationhas its own ID signal which is unique. The signal detected by theelectrodes 140 is sampled by ADC 146 and processed by the RT controller148 as part of its data collection program. This method of detecting themedication taken by the patient is a substitute or supplement forquestioning the patient regarding medication using the subjective datalogger 106, and is more reliable since it is not limited by thepatient's memory or truthfulness. It can therefore be used to validateand cross check the patient's log of drug consumption. The microcircuitis non-toxic and, because of its small size, it eventually is excretedfrom the body without discomfort to the patient.

While the invention has been shown and described with reference to apreferred embodiment thereof, it will be understood by those skilled inthe art that various changes in form and detail may be made thereinwithout departing from the spirit and scope of the invention as definedby the appended claims.

What is claimed is:
 1. An in vivo monitoring system comprising: aningestible capsule containing a material to be consumed by a subject; asignal generator located within the capsule which outputs a signalhaving a predetermined signal characteristic, said material beingliberated by dissolution of the capsule in the body of the subject; anda signal detector at least a portion of which is external to thesubject's body, and which detects the signal transmitted from the signalgenerator.
 2. A monitoring system according to claim 1 furthercomprising a memory storage device in communication with the signaldetector and in which a representation of the detected signal is stored.3. A monitoring system according to claim 1 further comprising an energystorage device in the capsule such that, upon dissolution of thecapsule, a transfer of power occurs from the energy storage device tothe signal generator.
 4. A monitoring system according to claim 1wherein said signal generator comprises a plurality of electrodes which,when free of the capsule, extend away from one another in a dipoleconfiguration.
 5. A monitoring system according to claim 1 wherein saidmaterial is a medication.
 6. A monitoring system according to claim 1wherein the dissolution of the capsule occurs in a stomach of thesubject.
 7. A monitoring system according to claim 1 wherein the signaldetector is in contact with a portion of skin of the subject.
 8. Amonitoring system according to claim 1 wherein the signal is transmittedthrough tissue of the subject.
 9. A monitoring system according to claim8 wherein the signal is an electrical signal.
 10. A medicationconsumption monitoring system comprising: an ingestible capsulecontaining a medication to be consumed by a subject; a signal generatorlocated within the capsule which outputs an electrical signal having apredetermined characteristic indicative of said medication, said capsuleand said medication being liberated by dissolution of the capsule in thestomach acid of a subject; and a signal detector having an input inelectrical contact with a portion of the subject's skin and whichdetects the electrical signal transmitted through tissue of the subjectby the signal generator.
 11. A medication consumption monitoring systemaccording to claim 1 further comprising a memory storage device incommunication with the signal detector and in which a representation ofsaid medication is stored.
 12. A medication consumption monitoringsystem according to claim 1 further comprising an energy storage elementdevice such that, upon dissolution of the capsule, a transfer of poweroccurs from the energy storage device to the signal generator.
 13. Amedication consumption monitoring system according to claim 1 whereinsaid signal generator comprises a plurality of electrodes which, whenfree of the capsule, extend away from one another in a dipoleconfiguration.
 14. A method of monitoring, in vivo, a material consumedby a subject, the method comprising: initiating the ingestion of aningestible capsule by the subject that contains the material to beconsumed, the capsule additionally containing a signal generator thatoutputs a signal having a predetermined signal characteristic, saidmaterial and signal generator being liberated by dissolution of thecapsule in the body of the subject; and detecting the signal transmittedby the signal generator with a signal detector, at least a portion ofwhich is external to the subject's body.
 15. A method according to claim14 further comprising storing a representation of the detected signal ina memory storage device that is in communication with the signaldetector.
 16. A method according to claim 14 wherein the signalgenerator is powered by an energy storage device located in the capsulethat transfers power to the signal generator upon dissolution of thecapsule.
 17. A method according to claim 14 wherein said signalgenerator comprises a plurality of electrodes which, when free of thecapsule, extend away from one another in a dipole configuration.
 18. Amethod according to claim 14 wherein said material is a medication. 19.A method according to claim 14 wherein the dissolution of the capsuleoccurs in a stomach of the subject.
 20. A method according to claim 14wherein the signal detector is in contact with a portion of skin of thesubject.
 21. A method according to claim 14 wherein the signal istransmitted through tissue of the subject.
 22. A method according toclaim 14 wherein the signal is an electrical signal.
 23. A method ofmonitoring, in vivo, a medication consumed by a subject, the methodcomprising: initiating the ingestion of an ingestible capsule by thesubject that contains the medication to be consumed, the capsuleadditionally containing a signal generator that outputs an electricalsignal having a predetermined signal characteristic indicative of themedication, said medication and signal generator being liberated bydissolution of the capsule in the body of the subject; and detecting thesignal transmitted by the signal generator with a signal detector incontact with a portion of the subject's skin, the detector detecting theelectrical signal transmitted through tissue of the subject by thesignal generator.
 24. A method according to claim 23 further comprisingstoring a representation of the medication in a memory storage device incommunication with the signal detector.
 25. A method according to claim23 wherein power is provided to the signal generator from an energystorage element in the capsule that transfers the power upon dissolutionof the capsule.
 26. A method according to claim 23 wherein said signalgenerator comprises a plurality of electrodes which, when free of thecapsule, extend away from one another in a dipole configuration.